#ifndef TRUCKPATHINFO_H_
#define TRUCKPATHINFO_H_

#include "model/pathInfo.h"
#include <tr1/functional>

class TruckPathInfo : public PathInfo{
	public:
		typedef std::tr1::function<void (void*)> PathNotifyCallbackType;
	private:
		float accel;
		float maxSpeed;
		float minSpeed;
		PathNotifyCallbackType callback;

	public:
		TruckPathInfo(	float accel=0.0f,
						float maxSpeed=1.0f,
						float minSpeed=0.0f){
			this->accel=accel;
			this->maxSpeed= maxSpeed;
			this->minSpeed=minSpeed;
			this->callback=NULL;
		}

		~TruckPathInfo(){}

		void setCallback(const PathNotifyCallbackType& callback){ this->callback=callback;}
		void pathNotifyCallback(void* data){
			if(this->callback)
				this->callback(data);
		}

		float getAccel(){ return accel; }
		float getMaxSpeed(){ return maxSpeed; }
		float getMinSpeed(){ return minSpeed; }
};

#endif /* TRUCKPATHINFO_H_ */
